using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Resources;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;

namespace KPIS.GERP.Models.HRM
{
	[Table("HrmRcTransfer")]
    public class RcTransfer
    {
        public RcTransfer()
        {
            this.hrm_rc_transfer_dtls = new HashSet<RcTransferDtls>();
        }
    

		[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
		[DataMember, Display(Name = "TransId", ResourceType = typeof(Resources.RcTransfersResource))]
        public int TransId { get; set; }

		[ForeignKey("TmpEmp")]
		[DataMember, Display(Name = "TmpEmpId", ResourceType = typeof(Resources.RcTransfersResource))]
        public Nullable<int> TmpEmpId { get; set; }

		[DataMember, Display(Name = "AdmittedDate", ResourceType = typeof(Resources.RcTransfersResource))]
        public Nullable<System.DateTime> AdmittedDate { get; set; }

		[ForeignKey("Field")]
		[DataMember, Display(Name = "FieldId", ResourceType = typeof(Resources.RcTransfersResource))]
        public Nullable<int> FieldId { get; set; }

		[ForeignKey("Class")]
		[DataMember, Display(Name = "ClassId", ResourceType = typeof(Resources.RcTransfersResource))]
        public Nullable<int> ClassId { get; set; }

		[DataMember, Display(Name = "OrgName", ResourceType = typeof(Resources.RcTransfersResource))]
        public string OrgName { get; set; }

		[DataMember, Display(Name = "DepName", ResourceType = typeof(Resources.RcTransfersResource))]
        public string DepName { get; set; }

		[DataMember, Display(Name = "MinisName", ResourceType = typeof(Resources.RcTransfersResource))]
        public string MinisName { get; set; }

		[ForeignKey("CurrField")]
		[DataMember, Display(Name = "CurrFieldId", ResourceType = typeof(Resources.RcTransfersResource))]
        public Nullable<int> CurrFieldId { get; set; }

		[DataMember, Display(Name = "CurrOrgName", ResourceType = typeof(Resources.RcTransfersResource))]
        public string CurrOrgName { get; set; }

		[DataMember, Display(Name = "CurrDepName", ResourceType = typeof(Resources.RcTransfersResource))]
        public string CurrDepName { get; set; }

		[DataMember, Display(Name = "CurrMinisName", ResourceType = typeof(Resources.RcTransfersResource))]
        public string CurrMinisName { get; set; }

		[DataMember, Display(Name = "CurrJobDescription", ResourceType = typeof(Resources.RcTransfersResource))]
        public string CurrJobDescription { get; set; }

		[DataMember, Display(Name = "Reason", ResourceType = typeof(Resources.RcTransfersResource))]
        public string Reason { get; set; }

		[DataMember, Display(Name = "RequestDate", ResourceType = typeof(Resources.RcTransfersResource))]
        public Nullable<System.DateTime> RequestDate { get; set; }

		[DataMember, Display(Name = "StartDate", ResourceType = typeof(Resources.RcTransfersResource))]
        public Nullable<System.DateTime> StartDate { get; set; }

		[DataMember, Display(Name = "Remarks", ResourceType = typeof(Resources.RcTransfersResource))]
        public string Remarks { get; set; }

		[DataMember, Display(Name = "RecordStatus", ResourceType = typeof(Resources.RcTransfersResource))]
        public string RecordStatus { get; set; }

		[DataMember, Display(Name = "CreatedBy", ResourceType = typeof(Resources.RcTransfersResource))]
        public Nullable<int> CreatedBy { get; set; }

		[DataMember, Display(Name = "CreatedWhen", ResourceType = typeof(Resources.RcTransfersResource))]
        public Nullable<System.DateTime> CreatedWhen { get; set; }

		[DataMember, Display(Name = "UpdatedBy", ResourceType = typeof(Resources.RcTransfersResource))]
        public Nullable<int> UpdatedBy { get; set; }

		[DataMember, Display(Name = "UpdatedWhen", ResourceType = typeof(Resources.RcTransfersResource))]
        public Nullable<System.DateTime> UpdatedWhen { get; set; }
    

		[DataMember ]
        public virtual ICollection<HRM.RcTransferDtls> hrm_rc_transfer_dtls { get; set; }

		public virtual TmpEmployee TmpEmp { get; set; }

		public virtual FieldPosition Field { get; set; }

		public virtual MpClass Class { get; set; }

		public virtual FieldPosition CurrField { get; set; }

    }
}